"""
选择排序(Selection)
    从0索引开始，跟后面的元素意义比较,小的放前面，大的放后面,第一次循环结束后，最小的数据已经确定,
    第二次循环从1索引开始以此类推

时间复杂度：
    对于随机排列的数组，冒泡排序的时间复杂度是 O(n^2)。
"""


def selection(array):
    for j in range(len(array)):
        for i in range(j + 1, len(array)):
            if array[j] > array[i]:
                array[j], array[i] = array[i], array[j]


def selection01(array):
    for i in range(len(array)):
        min_index = i  # 第一个是最小值
        for j in range(i + 1, len(array)):
            if array[j] < array[min_index]:
                min_index = j
        array[min_index], array[i] = array[i], array[min_index]


if __name__ == '__main__':
    array = [1, 100, 23, 45, 12, 25, 3, 90, 34]
    selection01(array)
    print(array)
